diff --git a/sympy/core/expr.py b/sympy/core/expr.py
index 24d89897f7..4bfd11c07e 100644
--- a/sympy/core/expr.py
+++ b/sympy/core/expr.py
@@ -120,26 +120,11 @@ def _hashable_content(self):
         return self._args
 
     def __eq__(self, other):
-        try:
-            other = sympify(other)
-            if not isinstance(other, Expr):
-                return False
-        except (SympifyError, SyntaxError):
-            return False
-        # check for pure number expr
-        if  not (self.is_Number and other.is_Number) and (
-                type(self) != type(other)):
-            return False
-        a, b = self._hashable_content(), other._hashable_content()
-        if a != b:
-            return False
-        # check number *in* an expression
-        for a, b in zip(a, b):
-            if not isinstance(a, Expr):
-                continue
-            if a.is_Number and type(a) != type(b):
-                return False
-        return True
+        # If other is already an Expr, we can use the standard comparison
+        if isinstance(other, Expr):
+            return super(Expr, self).__eq__(other)
+        # If other is not an Expr, we return False
+        return False
 
     # ***************
     # * Arithmetics *
